In recent years there has been an increase in interest in the Internet and Internet applications. The Internet is a client-server paradigm where clients access server applications to obtain information. This proliferation of Internet users has led to many networks employing the same client-server paradigm in an internal network known as an intranet. These intranets are often built on the same communications protocols as the Internet. Thus a user or client may communicate with a server on an internal network or on the Internet in a seamless fashion such that the location of the server and access to that server may be transparent to a user.
The communication protocol on which the Internet is based is known as the Transmission Control Protocol/Internet Protocol (TCP/IP). The popularity of the Internet and of intranets has led to the proliferation of TCP/IP throughout the computing community. This proliferation has led to TCP/IP being utilized on local area networks (LANs), wide area networks (WANs) and even on mainframe computers such as the International Business Machines Corporation's OS/390 systems.
To communicate using TCP/IP, a computer system typically has a TCP/IP protocol stack executing on the computer. A TCP/IP protocol stack or TCP/IP instance governs the communications between the client and the server. If the computer systems capabilities allow, a computer system may have multiple TCP/IP instances communicating with multiple clients and servers. Thus, as is illustrated in FIG. 1, a computer system 22 may have multiple TCP/IP instances (illustrated by TCP/IP A 12 and TCP/IP B 16) and multiple servers (illustrated by Server A 10 and Server B 14) communicating with multiple clients (illustrated by Client A 18 and Client B 20).
One typical constraint of the client-server model illustrated in FIG. 1, is that applications such as Server A 10 and Server B 14 may not span multiple TCP/IP instances. Thus, where multiple TCP/IP instance exist on a single computer system a particular server is limited to the IP address domain of the TCP/IP instance to which it is connected. Thus, to support clients connecting to the computer system through more than one of the computer systems TCP/IP instances a duplicate of the server should be connected to each of the TCP/IP instances. Thus, to make a server application available to all IP address domains of a computer system the computer system is generally either limited to a single TCP/IP instance or to duplicate copies of a server application for each TCP/IP instance of the computer system.
While in some situations multiple copies of a server application may be acceptable, in certain situations it is not possible to have multiple copies of a server on a single computer system. Limitations on the number of allowable server applications may be imposed architecturally by the server application or may result from hardware or software limitations for the system. For example, only a single instance of the OS/390 OpenEdition Open System Adapter Support Facility (OSA/SF) may run in a MVS partition although up to 8 TCP/IP instances are allowed. Thus, in order to be available to all clients in a computer system's IP domain then only a single TCP/IP instance may be utilized on a computer system with such a server.
Even if a particular server application allows for multiple instances in a single computer system and the computer system's hardware and software are capable of multiple copies of a server there may still be disadvantages to multiple copies of a server on a single system. For example, system resources are still occupied by multiple copies of a server application. Central Processing Unit (CPU) usage may be increased as well as storage and memory requirements. Furthermore, synchronization of multiple copies of a server application to provide consistent server responses across multiple TCP/IP instances may also present difficulties.
In view of the above discussion, there exists a need for improvement in computer systems having multiple TCP/IP instances to allow access to server applications across the IP domain's of multiple TCP/IP instances.